Het definiëren van verwijzende sleutels

Een verwijzende sleutel moet altijd verwijzen naar een primaire sleutel uit een andere tabel. Verwijzende sleutels kunnen in SQL gedefinieerd worden bij het create table statement. Het volgende voorbeeld creëert de tabel RESULTAAT met als primaire sleutel het tupel tex2html_wrap_inline1605 en als verwijzende sleutels de attributen tex2html_wrap_inline1607 en tex2html_wrap_inline1609 .

create table RESULTAAT(
        student_nr        integer      not null,
        vak_code          char(6)      not null,
        datum             date,
        cijfer            decimal(3,1),
        constraint pk_result 
                primary key (student_nr, vak_code, datum),
        constraint fk_student_nr 
                foreign key (student_nr) 
                references STUDENT(student_nr), 
        constraint fk_vak_code 
                foreign key (vak_code) 
                references VAK(vak_code) );

Het definiëren van verwijzende sleutels werkt bijna hetzelfde als het definiëren van primaire sleutels; het enige verschil is dat er ook aangegeven moet worden naar welke primaire sleutel uit een andere tabel er verwezen wordt. Dit gebeurt met het statement:

        references [TABEL](veld-naam1, veld-naam2, ...)
Merk op dat een verwijzende sleutel ook naar meerdere attributen kan verwijzen.

Opnieuw zorgt SQL ervoor dat de verwijzende-sleutel-voorwaarden vervuld blijven. Dit betekent dat tex2html_wrap_inline1611 en tex2html_wrap_inline1613 primaire sleutels moeten zijn in respectievelijk de tabellen STUDENT en VAK. Zorg er dus voor dat bij het creëren van tabellen met verwijzende sleutels de tabellen, waarnaar verwezen wordt reeds bestaan!